From ce1dce113c5eda42f49ba3278bb21c61872ca37d Mon Sep 17 00:00:00 2001
From: Paul Cornett <paulcor@users.noreply.github.com>
Date: Mon, 28 Aug 2017 20:31:47 -0700
Subject: [PATCH] Avoid delayed destruction if TLW was never created. See
 #17942

(cherry picked from commit 4a71ba820f085a3d5a7233e9fd0e23ae4e45af58)
---
 src/common/toplvcmn.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/common/toplvcmn.cpp b/src/common/toplvcmn.cpp
index ef693690c5d..6a722f8be48 100644
--- a/src/common/toplvcmn.cpp
+++ b/src/common/toplvcmn.cpp
@@ -105,10 +105,10 @@ bool wxTopLevelWindowBase::Destroy()
     // as we will be deleted anyhow during its destruction and the pointer
     // stored in wxPendingDelete would become invalid, so just delete ourselves
     // immediately in this case.
-    if ( wxWindow* parent = GetParent() )
+    wxWindow* parent = GetParent();
+    if ( (parent && parent->IsBeingDeleted()) || !GetHandle() )
     {
-        if ( parent->IsBeingDeleted() )
-            return wxNonOwnedWindow::Destroy();
+        return wxNonOwnedWindow::Destroy();
     }
 
     // delayed destruction: the frame will be deleted during the next idle
